配列からMAP上に四角形を複数生成してゆくスクリプトを作りたいのですが

53 views
Skip to first unread message

シト

unread,
Dec 7, 2009, 8:13:59 PM12/7/09
to Google-Maps-API-Japan
MAP上に四角形を複数生成してゆくスクリプトを作りたいのですが、
配列にしたとたん表示されなくなりました。alertでの確認では値は取れています。
points を "points"+i というように、points0~ 分岐。
pOj[i][j] で、配列の値を、"34.318836,136.816752”というように取得しています。
なにかご指導いただけると助かります。よろしくお願いします。

以下ソース

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-
microsoft-com:vml">
<head>
<title>GoogleMAP API テスト</title>
<script src="http://maps.google.com/maps?
file=api&v=2&key=ABQIAAAAEJTqn9_zBrnLgLkt7HEc4RRBiWvVISvW5TN31tOhX4bn_Jk6XxRs-

Rk2ohcBCISuajsGd-qtNzRcaQ" type="text/javascript" charset="UTF-8"></
script>
<style type="text/css">
v\:* {
behavior:url(#default#VML);
}
</style>
</head>
<body>
<div id="map" style="width:600px; height:500px"></div>

<script type="text/javascript">
//<![CDATA[
//地図上の四角形緯度経度データ
var pOj = [
[[34.318836,136.816752],[34.318836,136.847752],[34.3438836,136.847752],
[34.3438836,136.816752],[34.318836,136.816752]],
[[34.3438836,136.816752],[34.3438836,136.847752],
[34.369836,136.847752],[34.369836,136.816752],[34.3438836,136.816752]]
];

if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(34.330395,136.801758), 12);

map.addControl(new GLargeMapControl());
new GKeyboardHandler(map);
map.addControl(new GScaleControl());

var points;

for (var i = 0; i < 2; i++){
points = "points" + i;
//alert(points);
for (var j = 0; j < 5; j++){
points = [];
//alert(j);
//alert(pOj[i][j]);
points[j] = new GLatLng("pOj[i][j]");
}
var polyline = new GPolygon(points, '#000000', 1, 0.5, '#FFFF00',
0.5);
map.addOverlay(polyline);
}
}
//]]>
</script>
</body>
</html>

KF

unread,
Dec 8, 2009, 5:05:57 AM12/8/09
to Google-Maps-API-Japan
以下のような具合で、どうでしょうか。四角が2つ描かれているのでよいかと思いますが。
(スクリプト部分のみ抜粋。MacOS X + Firefox 3.5で動作確認済み)

-----------------------------------
<script type="text/javascript">
//<![CDATA[
//地図上の四角形緯度経度データ
var pOj = [
[[34.318836,136.816752],[34.318836,136.847752],
[34.3438836,136.847752],
[34.3438836,136.816752],[34.318836,136.816752]],
[[34.3438836,136.816752],[34.3438836,136.847752],
[34.369836,136.847752],[34.369836,136.816752],
[34.3438836,136.816752]]
];
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(34.330395,136.801758), 12);
map.addControl(new GLargeMapControl());
new GKeyboardHandler(map);
map.addControl(new GScaleControl());
for (var i = 0; i < 2; i++){
var points=[];
for (var j = 0; j < 5; j++){
points[j] = new GLatLng(pOj[i][j][0], pOj[i][j][1]);

シト

unread,
Dec 8, 2009, 7:06:02 AM12/8/09
to Google-Maps-API-Japan
思い通りの表示です。[i][j][1]なようにも書けるんですね。
winXPpro FirefoxでOKです。デバックでも、(IE分岐のハック以外)エラー表示されずOKです。
とても助かりました!。* ありがとうございます* !
プロフィールURLサイトも拝見しました。> Bookmark。


On 12月8日, 午後7:05, KF <open...@alpha.ocn.ne.jp> wrote:
> 以下のような具合で、どうでしょうか。四角が2つ描かれているのでよいかと思いますが。
> (スクリプト部分のみ抜粋。MacOS X + Firefox 3.5で動作確認済み)

Reply all
Reply to author
Forward
0 new messages