Auto-center map with multiple markers in Google Maps API v3

后端 未结 8 1031
梦如初夏
梦如初夏 2020-12-07 06:38

This is what I use to display a map with 3 pins/markers:



        
8条回答
  •  没有蜡笔的小新
    2020-12-07 07:19

    i had a situation where i can't change old code, so added this javascript function to calculate center point and zoom level:

    //input
    var tempdata = ["18.9400|72.8200-19.1717|72.9560-28.6139|77.2090"];
    
    function getCenterPosition(tempdata){
    	var tempLat = tempdata[0].split("-");
    	var latitudearray = [];
    	var longitudearray = [];
    	var i;
    	for(i=0; i longidifferenece)? latdifferenece : longidifferenece;
    	var zoomvalue;	
    	if(maxdifference >= 0 && maxdifference <= 0.0037)  //zoom 17
    		zoomvalue='17';
    	else if(maxdifference > 0.0037 && maxdifference <= 0.0070)  //zoom 16
    		zoomvalue='16';
    	else if(maxdifference > 0.0070 && maxdifference <= 0.0130)  //zoom 15
    		zoomvalue='15';
    	else if(maxdifference > 0.0130 && maxdifference <= 0.0290)  //zoom 14
    		zoomvalue='14';
    	else if(maxdifference > 0.0290 && maxdifference <= 0.0550)  //zoom 13
    		zoomvalue='13';
    	else if(maxdifference > 0.0550 && maxdifference <= 0.1200)  //zoom 12
    		zoomvalue='12';
    	else if(maxdifference > 0.1200 && maxdifference <= 0.4640)  //zoom 10
    		zoomvalue='10';
    	else if(maxdifference > 0.4640 && maxdifference <= 1.8580)  //zoom 8
    		zoomvalue='8';
    	else if(maxdifference > 1.8580 && maxdifference <= 3.5310)  //zoom 7
    		zoomvalue='7';
    	else if(maxdifference > 3.5310 && maxdifference <= 7.3367)  //zoom 6
    		zoomvalue='6';
    	else if(maxdifference > 7.3367 && maxdifference <= 14.222)  //zoom 5
    		zoomvalue='5';
    	else if(maxdifference > 14.222 && maxdifference <= 28.000)  //zoom 4
    		zoomvalue='4';
    	else if(maxdifference > 28.000 && maxdifference <= 58.000)  //zoom 3
    		zoomvalue='3';
    	else
    		zoomvalue='1';
    	return latitudeMid+'|'+longitudeMid+'|'+zoomvalue;
    }

提交回复
热议问题