PHP と JavaScript を理解し始めており、それらを HTML に組み込み、Google Maps API (バージョン 3) を使用しています。
さまざまなマーカーを「配置」する方法を考えましたが、コンソールでエラーがスローされます。
「キャッチされていない InvalidValueError: setCenter: LatLng または LatLngLiteral オブジェクトではありません」。
ループで作成された var が必要なオブジェクトではなく、代わりに文字列であるためだと思いますが、これは私を混乱させますが、私が正しいかどうかはわかりません。
これは私のコードです:(ちなみに、私がループしている配列は、配列を持つ配列を持つ配列です。ここにその一部があります。パターンに従い、合計6つの「場所」があります):
$locations = array(
array(
'Location' => array(
'Title'=>'Place',
'Description'=>'Some Place',
'Image'=>'pin1.png',
'Latitude'=>'20.681775',
'Longitude'=>'-103.351479'
)
),…
(続きます…)。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?AIzaSyBVfO8LckdOHAot1a8rZW0bmJIoWO2A3os=API_KEY&sensor=true">
</script>
<script type="text/javascript">
function initialize() {
var mapOptions = {
center: (20.68177501, -103.3514794),
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
// To add the marker to the map, use the 'map' property
<?php $i = 0; ?>
<?php foreach($locations as $key => $value): ?>
<?php foreach($value as $key => $value): ?>
<?php foreach($value as $key => $value): ?>
<?php if($key == "Latitude"): ?>
<?php $myLatLng = "$value, "; endif;?>
<?php if($key == "Longitude"): ?>
<?php $myLatLng .="$value"; ?>
var myLatlng<?php echo $i; ?> = new google.maps.LatLng(<?php echo $myLatLng; ?>);
var marker<?php echo $i; ?> = new google.maps.Marker({
position: (myLatlng<?php echo $i; ?>),
title:"Hello World!"
});
marker<?php echo $i; ?>.setMap(map);
<?php $i++; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php endforeach; ?>
<?php endforeach; ?>
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"/>
</body>
</html>
そして、これがその var 割り当て部分のスクリーンショットです。