当前位置: 首页 > 知识库问答 >
问题:

谷歌地图,使用place_id创建地图

孙辰阳
2023-03-14

是否可以使用Google API为网站创建一个与此完全相同的地图:

https://www.google.pl/maps/place/Googleplex/@37.422,-122.0840835,19z/data=!4m2!3m1!1s0x808fba02425dad8f: 0x6c296c66619367e0

所以我想要的是将地点ID传递给API,以获得一个像Googleplex这样的地方,我希望标记在上面,地名是红色的。

我使用api v3,我想直接传递给它的id的地方不使用搜索像这里提到的:https://developers.google.com/maps/documentation/javascript/places#place_searches

我也不想嵌入一个预生成的,因为面积图需要覆盖的是动态的页面宽度和高度。

共有2个答案

姚俊贤
2023-03-14

该函数有3个输入,您应该将它们存储在代码中。(在这里您可以找到place_id:https://developers.google.com/maps/documentation/javascript/examples/places-placeid-finder)您应该更改地图ID(或将其作为输入传递)。

function initMap(place_id, lat, lng){
    var map = new google.maps.Map(document.getElementById('js-concrete_map'), {
        center: {lat: lat, lng: lng},
        zoom: 15
    });
    var infowindow = new google.maps.InfoWindow();
    var service = new google.maps.places.PlacesService(map);

    service.getDetails({
        placeId: place_id
    }, function(place, status) {
        if (status === google.maps.places.PlacesServiceStatus.OK) {
            var marker = new google.maps.Marker({
                map: map,
                position: place.geometry.location
          });
          google.maps.event.addListener(marker, 'click', function() {
            infowindow.setContent(place.name);
            infowindow.open(map, this);
          });
        }
    });
}
吕修伟
2023-03-14

使用PlacesService和getDetails()方法。

function initialize() {

    var map = new google.maps.Map(document.getElementById('map-canvas'), {
        center: new google.maps.LatLng(-33.8665433, 151.1956316),
        zoom: 15
    });

    var request = {
        placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4'
    };

    var infowindow = new google.maps.InfoWindow();
    var service = new google.maps.places.PlacesService(map);

    service.getDetails(request, function (place, status) {

        if (status == google.maps.places.PlacesServiceStatus.OK) {

            var marker = new google.maps.Marker({
                map: map,
                position: place.geometry.location
            });

            google.maps.event.addListener(marker, 'click', function () {
                infowindow.setContent(place.name);
                infowindow.open(map, this);
            });
        }
    });
}

google.maps.event.addDomListener(window, 'load', initialize);

看见https://developers.google.com/maps/documentation/javascript/examples/place-details

 类似资料:
  • 我知道周围也有类似的问题,但我无法找到一个可靠的答案,这是我的问题:有没有什么方法可以在没有谷歌地图引用的情况下将标记存储在ArrayList(或任何其他存储)中,然后简单地将它们添加到我的地图中? 背景:我有一个应用程序,目前有大约3500个标记。每个标记还有一个与之相关联的数据(布尔数组存储每个标记的数据,用于根据用户交互使它们可见/不可见)。目前,我使用扩展AsyncTask的类来获取这些标

  • 所以我看到了一个特殊的例外,我敢肯定的是谷歌地图的绘图代码。 我有一个片段,在那里我以编程方式添加了一个支持地图片段,然后我在其中操纵谷歌地图实例。 这是stacktrace: 我无法可靠地复制它(尽管这种情况经常发生),我已经查看了ReadWriteDirectByteBuffer和ShortToByteBufferAdapter,但没有任何东西突然出现在我面前。 有什么想法吗?

  • 我认为问题是我需要添加构建提示。我可以找到在哪里添加他们,但我不确定他们应该是什么格式。我也不知道要补充什么。我想我发现了一个帖子,说我需要添加Android.xapplication=Android:value=“Your Key”/>Android.xPermissions= 但我不确定构建提示条目表单中的格式是什么

  •        LSV默认的对谷歌影像进行了加载,如果需要加载其他的谷歌地图数据,可以通过LSV中直接点击即可加载。

  • 我如何根据坐标创建谷歌地图链接。他们的新基本共享网址包含许多参数,例如- https://www.google.com/maps/place/Vetlanda,瑞典/@57.4217311,15.0849255,13z/data=!3m1!4b1!4m2!3m1!1s0x465758d912d321b5:0x55675191e550be84?hl=en 有什么想法吗?不希望嵌入,而只是创建可以共享

  • 在互联网上我可以找到许多创建谷歌地图的例子。 这样地:https://developers.google.com/maps/documentation/javascript/examples/polygon-arrays 但是我需要创建多边形不是从拉特和Lng,而是公里。 示例: 有可能吗?