【问题标题】:Styling a Google Map - Javascript样式化谷歌地图 - Javascript
【发布时间】:2011-11-26 17:23:21
【问题描述】:

我为我的谷歌地图遵循了两个不同的教程,一个从 MySQL 数据库运行地图,另一个用于设置地图样式。

我无法将两者结合起来,我对 javascript 没有太多经验...

我为使用数据库的地图所拥有的代码是: 你可以看这张地图here

<!DOC

TYPE 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">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Intern Map</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=myapikey" type="text/javascript"></script>

<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map { height: 100% }
</style>


<script type="text/javascript">
//<![CDATA[

var iconStudent = new GIcon(); 
iconStudent.image = 'images/man.png';
iconStudent.shadow = 'images/man_shadow.png';
iconStudent.iconSize = new GSize(35, 60);
iconStudent.shadowSize = new GSize(60, 55);
iconStudent.iconAnchor = new GPoint(6, 30);
iconStudent.infoWindowAnchor = new GPoint(5, 1);

var iconAgency = new GIcon(); 
iconAgency.image = 'images/pin.png';
iconAgency.shadow = 'images/pin_shadow.png';
iconAgency.iconSize = new GSize(40, 40);
iconAgency.shadowSize = new GSize(60, 40);
iconAgency.iconAnchor = new GPoint(6, 20);
iconAgency.infoWindowAnchor = new GPoint(5, 1);

var customIcons = [];
customIcons["restaurant"] = iconStudent;
customIcons["bar"] = iconAgency;

function load() {
    if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(40, 0), 3);
   // map.setCenter(new GLatLng(47.614495, 0), 3);

    GDownloadUrl("marker.php", function(data) {
      var xml = GXml.parse(data);
      var markers = xml.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute("name");
        var address = markers[i].getAttribute("address");
        var type = markers[i].getAttribute("type");
        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lng")));
        var marker = createMarker(point, name, address, type);
        map.addOverlay(marker);
      }
    });
  }
}

function createMarker(point, name, address, type) {
  var marker = new GMarker(point, customIcons[type]);
  var html = "<b>" + name + "</b> <br/>" + address;
  GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}



    //]]>
  </script>

  </head>

  <body onload="load()" onunload="GUnload()">
    <div id="map"></div>
  </body>

然后我就有了适合我想要的样式的代码: 你可以看到这个here

<!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="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

<script type="text/javascript">
    function initialize() {
    var latlng = new google.maps.LatLng(40,0);
    var myOptions = {
    zoom: 3,
    center: latlng,
    panControl: false,
    panControlOptions: {
    position: google.maps.ControlPosition.RIGHT_TOP 
    },
    zoomControl: true,
    zoomControlOptions: {
    position: google.maps.ControlPosition.RIGHT_TOP
    },

    scaleControl: false,
    mapTypeId: google.maps.MapTypeId.SATELLITE
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);
    }
</script>

</head>
<body onload="initialize()">

<div id="map_canvas" style="width:100%; height:100%"></div>

</body>
</html>

谁能帮我把两者结合起来,或者指出我正确的方向。

提前致谢

还不错

【问题讨论】:

    标签: javascript mysql google-maps


    【解决方案1】:

    第一个脚本使用 javascript api v2,第二个脚本使用 javascript api v3。 所以不可能将两者结合起来。您应该以basics 开头并在此处发布任何其他问题

    【讨论】:

    • 感谢您的建议!不幸的是,这是一个必须尽快交付的原型,所以我不得不深入研究:( 甚至不可能把它的一部分拿走,比如制作地图卫星?
    • 没有。可以在 API 3 中制作卫星地图,但不能使用 API 2 代码(反之亦然)。首先确定您使用的两个 API 中的哪一个(推荐 API 3;自 2010 年 5 月起已弃用 v2)
    • 太棒了,这很有道理,我会试一试。谢谢大家!
    • 如果这个 qnsweer 解决了您的问题,您应该考虑接受它作为正确答案。您也可以将 cmets 投票为这个。干杯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2018-04-12
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多